package com.qzdsoft.erpcloud.domain.proj;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MaterialInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MaterialInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIsNull() {
            addCriterion("material_name is null");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIsNotNull() {
            addCriterion("material_name is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialNameEqualTo(String value) {
            addCriterion("material_name =", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotEqualTo(String value) {
            addCriterion("material_name <>", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameGreaterThan(String value) {
            addCriterion("material_name >", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameGreaterThanOrEqualTo(String value) {
            addCriterion("material_name >=", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLessThan(String value) {
            addCriterion("material_name <", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLessThanOrEqualTo(String value) {
            addCriterion("material_name <=", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLike(String value) {
            addCriterion("material_name like", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotLike(String value) {
            addCriterion("material_name not like", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIn(List<String> values) {
            addCriterion("material_name in", values, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotIn(List<String> values) {
            addCriterion("material_name not in", values, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameBetween(String value1, String value2) {
            addCriterion("material_name between", value1, value2, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotBetween(String value1, String value2) {
            addCriterion("material_name not between", value1, value2, "materialName");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNull() {
            addCriterion("company_id is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNotNull() {
            addCriterion("company_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdEqualTo(Integer value) {
            addCriterion("company_id =", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotEqualTo(Integer value) {
            addCriterion("company_id <>", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThan(Integer value) {
            addCriterion("company_id >", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("company_id >=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThan(Integer value) {
            addCriterion("company_id <", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThanOrEqualTo(Integer value) {
            addCriterion("company_id <=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIn(List<Integer> values) {
            addCriterion("company_id in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotIn(List<Integer> values) {
            addCriterion("company_id not in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdBetween(Integer value1, Integer value2) {
            addCriterion("company_id between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotBetween(Integer value1, Integer value2) {
            addCriterion("company_id not between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingIsNull() {
            addCriterion("material_coding is null");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingIsNotNull() {
            addCriterion("material_coding is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingEqualTo(String value) {
            addCriterion("material_coding =", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingNotEqualTo(String value) {
            addCriterion("material_coding <>", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingGreaterThan(String value) {
            addCriterion("material_coding >", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingGreaterThanOrEqualTo(String value) {
            addCriterion("material_coding >=", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingLessThan(String value) {
            addCriterion("material_coding <", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingLessThanOrEqualTo(String value) {
            addCriterion("material_coding <=", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingLike(String value) {
            addCriterion("material_coding like", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingNotLike(String value) {
            addCriterion("material_coding not like", value, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingIn(List<String> values) {
            addCriterion("material_coding in", values, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingNotIn(List<String> values) {
            addCriterion("material_coding not in", values, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingBetween(String value1, String value2) {
            addCriterion("material_coding between", value1, value2, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialCodingNotBetween(String value1, String value2) {
            addCriterion("material_coding not between", value1, value2, "materialCoding");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecIsNull() {
            addCriterion("material_spec is null");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecIsNotNull() {
            addCriterion("material_spec is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecEqualTo(String value) {
            addCriterion("material_spec =", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecNotEqualTo(String value) {
            addCriterion("material_spec <>", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecGreaterThan(String value) {
            addCriterion("material_spec >", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecGreaterThanOrEqualTo(String value) {
            addCriterion("material_spec >=", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecLessThan(String value) {
            addCriterion("material_spec <", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecLessThanOrEqualTo(String value) {
            addCriterion("material_spec <=", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecLike(String value) {
            addCriterion("material_spec like", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecNotLike(String value) {
            addCriterion("material_spec not like", value, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecIn(List<String> values) {
            addCriterion("material_spec in", values, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecNotIn(List<String> values) {
            addCriterion("material_spec not in", values, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecBetween(String value1, String value2) {
            addCriterion("material_spec between", value1, value2, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialSpecNotBetween(String value1, String value2) {
            addCriterion("material_spec not between", value1, value2, "materialSpec");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdIsNull() {
            addCriterion("material_type_id is null");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdIsNotNull() {
            addCriterion("material_type_id is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdEqualTo(Integer value) {
            addCriterion("material_type_id =", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdNotEqualTo(Integer value) {
            addCriterion("material_type_id <>", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdGreaterThan(Integer value) {
            addCriterion("material_type_id >", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("material_type_id >=", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdLessThan(Integer value) {
            addCriterion("material_type_id <", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdLessThanOrEqualTo(Integer value) {
            addCriterion("material_type_id <=", value, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdIn(List<Integer> values) {
            addCriterion("material_type_id in", values, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdNotIn(List<Integer> values) {
            addCriterion("material_type_id not in", values, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdBetween(Integer value1, Integer value2) {
            addCriterion("material_type_id between", value1, value2, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialTypeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("material_type_id not between", value1, value2, "materialTypeId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNull() {
            addCriterion("brand_id is null");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNotNull() {
            addCriterion("brand_id is not null");
            return (Criteria) this;
        }

        public Criteria andBrandIdEqualTo(Integer value) {
            addCriterion("brand_id =", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotEqualTo(Integer value) {
            addCriterion("brand_id <>", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThan(Integer value) {
            addCriterion("brand_id >", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("brand_id >=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThan(Integer value) {
            addCriterion("brand_id <", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThanOrEqualTo(Integer value) {
            addCriterion("brand_id <=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIn(List<Integer> values) {
            addCriterion("brand_id in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotIn(List<Integer> values) {
            addCriterion("brand_id not in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdBetween(Integer value1, Integer value2) {
            addCriterion("brand_id between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotBetween(Integer value1, Integer value2) {
            addCriterion("brand_id not between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdIsNull() {
            addCriterion("measurement_u_id is null");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdIsNotNull() {
            addCriterion("measurement_u_id is not null");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdEqualTo(Integer value) {
            addCriterion("measurement_u_id =", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdNotEqualTo(Integer value) {
            addCriterion("measurement_u_id <>", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdGreaterThan(Integer value) {
            addCriterion("measurement_u_id >", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("measurement_u_id >=", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdLessThan(Integer value) {
            addCriterion("measurement_u_id <", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdLessThanOrEqualTo(Integer value) {
            addCriterion("measurement_u_id <=", value, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdIn(List<Integer> values) {
            addCriterion("measurement_u_id in", values, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdNotIn(List<Integer> values) {
            addCriterion("measurement_u_id not in", values, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdBetween(Integer value1, Integer value2) {
            addCriterion("measurement_u_id between", value1, value2, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMeasurementUIdNotBetween(Integer value1, Integer value2) {
            addCriterion("measurement_u_id not between", value1, value2, "measurementUId");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityIsNull() {
            addCriterion("minimum_packing_quantity is null");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityIsNotNull() {
            addCriterion("minimum_packing_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityEqualTo(Integer value) {
            addCriterion("minimum_packing_quantity =", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityNotEqualTo(Integer value) {
            addCriterion("minimum_packing_quantity <>", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityGreaterThan(Integer value) {
            addCriterion("minimum_packing_quantity >", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityGreaterThanOrEqualTo(Integer value) {
            addCriterion("minimum_packing_quantity >=", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityLessThan(Integer value) {
            addCriterion("minimum_packing_quantity <", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityLessThanOrEqualTo(Integer value) {
            addCriterion("minimum_packing_quantity <=", value, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityIn(List<Integer> values) {
            addCriterion("minimum_packing_quantity in", values, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityNotIn(List<Integer> values) {
            addCriterion("minimum_packing_quantity not in", values, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityBetween(Integer value1, Integer value2) {
            addCriterion("minimum_packing_quantity between", value1, value2, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andMinimumPackingQuantityNotBetween(Integer value1, Integer value2) {
            addCriterion("minimum_packing_quantity not between", value1, value2, "minimumPackingQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityIsNull() {
            addCriterion("on_hand_quantity is null");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityIsNotNull() {
            addCriterion("on_hand_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityEqualTo(Integer value) {
            addCriterion("on_hand_quantity =", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityNotEqualTo(Integer value) {
            addCriterion("on_hand_quantity <>", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityGreaterThan(Integer value) {
            addCriterion("on_hand_quantity >", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityGreaterThanOrEqualTo(Integer value) {
            addCriterion("on_hand_quantity >=", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityLessThan(Integer value) {
            addCriterion("on_hand_quantity <", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityLessThanOrEqualTo(Integer value) {
            addCriterion("on_hand_quantity <=", value, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityIn(List<Integer> values) {
            addCriterion("on_hand_quantity in", values, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityNotIn(List<Integer> values) {
            addCriterion("on_hand_quantity not in", values, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityBetween(Integer value1, Integer value2) {
            addCriterion("on_hand_quantity between", value1, value2, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andOnHandQuantityNotBetween(Integer value1, Integer value2) {
            addCriterion("on_hand_quantity not between", value1, value2, "onHandQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityIsNull() {
            addCriterion("available_quantity is null");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityIsNotNull() {
            addCriterion("available_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityEqualTo(Integer value) {
            addCriterion("available_quantity =", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityNotEqualTo(Integer value) {
            addCriterion("available_quantity <>", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityGreaterThan(Integer value) {
            addCriterion("available_quantity >", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityGreaterThanOrEqualTo(Integer value) {
            addCriterion("available_quantity >=", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityLessThan(Integer value) {
            addCriterion("available_quantity <", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityLessThanOrEqualTo(Integer value) {
            addCriterion("available_quantity <=", value, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityIn(List<Integer> values) {
            addCriterion("available_quantity in", values, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityNotIn(List<Integer> values) {
            addCriterion("available_quantity not in", values, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityBetween(Integer value1, Integer value2) {
            addCriterion("available_quantity between", value1, value2, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andAvailableQuantityNotBetween(Integer value1, Integer value2) {
            addCriterion("available_quantity not between", value1, value2, "availableQuantity");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockIsNull() {
            addCriterion("cumulative_stock is null");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockIsNotNull() {
            addCriterion("cumulative_stock is not null");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockEqualTo(Integer value) {
            addCriterion("cumulative_stock =", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockNotEqualTo(Integer value) {
            addCriterion("cumulative_stock <>", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockGreaterThan(Integer value) {
            addCriterion("cumulative_stock >", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockGreaterThanOrEqualTo(Integer value) {
            addCriterion("cumulative_stock >=", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockLessThan(Integer value) {
            addCriterion("cumulative_stock <", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockLessThanOrEqualTo(Integer value) {
            addCriterion("cumulative_stock <=", value, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockIn(List<Integer> values) {
            addCriterion("cumulative_stock in", values, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockNotIn(List<Integer> values) {
            addCriterion("cumulative_stock not in", values, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_stock between", value1, value2, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeStockNotBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_stock not between", value1, value2, "cumulativeStock");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnIsNull() {
            addCriterion("cumulative_return is null");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnIsNotNull() {
            addCriterion("cumulative_return is not null");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnEqualTo(Integer value) {
            addCriterion("cumulative_return =", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnNotEqualTo(Integer value) {
            addCriterion("cumulative_return <>", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnGreaterThan(Integer value) {
            addCriterion("cumulative_return >", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnGreaterThanOrEqualTo(Integer value) {
            addCriterion("cumulative_return >=", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnLessThan(Integer value) {
            addCriterion("cumulative_return <", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnLessThanOrEqualTo(Integer value) {
            addCriterion("cumulative_return <=", value, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnIn(List<Integer> values) {
            addCriterion("cumulative_return in", values, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnNotIn(List<Integer> values) {
            addCriterion("cumulative_return not in", values, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_return between", value1, value2, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeReturnNotBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_return not between", value1, value2, "cumulativeReturn");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsIsNull() {
            addCriterion("cumulative_shipments is null");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsIsNotNull() {
            addCriterion("cumulative_shipments is not null");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsEqualTo(Integer value) {
            addCriterion("cumulative_shipments =", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsNotEqualTo(Integer value) {
            addCriterion("cumulative_shipments <>", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsGreaterThan(Integer value) {
            addCriterion("cumulative_shipments >", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsGreaterThanOrEqualTo(Integer value) {
            addCriterion("cumulative_shipments >=", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsLessThan(Integer value) {
            addCriterion("cumulative_shipments <", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsLessThanOrEqualTo(Integer value) {
            addCriterion("cumulative_shipments <=", value, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsIn(List<Integer> values) {
            addCriterion("cumulative_shipments in", values, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsNotIn(List<Integer> values) {
            addCriterion("cumulative_shipments not in", values, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_shipments between", value1, value2, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeShipmentsNotBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_shipments not between", value1, value2, "cumulativeShipments");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalIsNull() {
            addCriterion("cumulative_withdrawal is null");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalIsNotNull() {
            addCriterion("cumulative_withdrawal is not null");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalEqualTo(Integer value) {
            addCriterion("cumulative_withdrawal =", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalNotEqualTo(Integer value) {
            addCriterion("cumulative_withdrawal <>", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalGreaterThan(Integer value) {
            addCriterion("cumulative_withdrawal >", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalGreaterThanOrEqualTo(Integer value) {
            addCriterion("cumulative_withdrawal >=", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalLessThan(Integer value) {
            addCriterion("cumulative_withdrawal <", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalLessThanOrEqualTo(Integer value) {
            addCriterion("cumulative_withdrawal <=", value, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalIn(List<Integer> values) {
            addCriterion("cumulative_withdrawal in", values, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalNotIn(List<Integer> values) {
            addCriterion("cumulative_withdrawal not in", values, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_withdrawal between", value1, value2, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andCumulativeWithdrawalNotBetween(Integer value1, Integer value2) {
            addCriterion("cumulative_withdrawal not between", value1, value2, "cumulativeWithdrawal");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdIsNull() {
            addCriterion("material_price_type_id is null");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdIsNotNull() {
            addCriterion("material_price_type_id is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdEqualTo(Integer value) {
            addCriterion("material_price_type_id =", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdNotEqualTo(Integer value) {
            addCriterion("material_price_type_id <>", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdGreaterThan(Integer value) {
            addCriterion("material_price_type_id >", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("material_price_type_id >=", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdLessThan(Integer value) {
            addCriterion("material_price_type_id <", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdLessThanOrEqualTo(Integer value) {
            addCriterion("material_price_type_id <=", value, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdIn(List<Integer> values) {
            addCriterion("material_price_type_id in", values, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdNotIn(List<Integer> values) {
            addCriterion("material_price_type_id not in", values, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdBetween(Integer value1, Integer value2) {
            addCriterion("material_price_type_id between", value1, value2, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceTypeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("material_price_type_id not between", value1, value2, "materialPriceTypeId");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedIsNull() {
            addCriterion("is_no_used is null");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedIsNotNull() {
            addCriterion("is_no_used is not null");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedEqualTo(Boolean value) {
            addCriterion("is_no_used =", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedNotEqualTo(Boolean value) {
            addCriterion("is_no_used <>", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedGreaterThan(Boolean value) {
            addCriterion("is_no_used >", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_no_used >=", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedLessThan(Boolean value) {
            addCriterion("is_no_used <", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedLessThanOrEqualTo(Boolean value) {
            addCriterion("is_no_used <=", value, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedIn(List<Boolean> values) {
            addCriterion("is_no_used in", values, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedNotIn(List<Boolean> values) {
            addCriterion("is_no_used not in", values, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedBetween(Boolean value1, Boolean value2) {
            addCriterion("is_no_used between", value1, value2, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsNoUsedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_no_used not between", value1, value2, "isNoUsed");
            return (Criteria) this;
        }

        public Criteria andIsSailIsNull() {
            addCriterion("is_sail is null");
            return (Criteria) this;
        }

        public Criteria andIsSailIsNotNull() {
            addCriterion("is_sail is not null");
            return (Criteria) this;
        }

        public Criteria andIsSailEqualTo(Boolean value) {
            addCriterion("is_sail =", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailNotEqualTo(Boolean value) {
            addCriterion("is_sail <>", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailGreaterThan(Boolean value) {
            addCriterion("is_sail >", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_sail >=", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailLessThan(Boolean value) {
            addCriterion("is_sail <", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailLessThanOrEqualTo(Boolean value) {
            addCriterion("is_sail <=", value, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailIn(List<Boolean> values) {
            addCriterion("is_sail in", values, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailNotIn(List<Boolean> values) {
            addCriterion("is_sail not in", values, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailBetween(Boolean value1, Boolean value2) {
            addCriterion("is_sail between", value1, value2, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsSailNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_sail not between", value1, value2, "isSail");
            return (Criteria) this;
        }

        public Criteria andIsBuyIsNull() {
            addCriterion("is_buy is null");
            return (Criteria) this;
        }

        public Criteria andIsBuyIsNotNull() {
            addCriterion("is_buy is not null");
            return (Criteria) this;
        }

        public Criteria andIsBuyEqualTo(Boolean value) {
            addCriterion("is_buy =", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyNotEqualTo(Boolean value) {
            addCriterion("is_buy <>", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyGreaterThan(Boolean value) {
            addCriterion("is_buy >", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_buy >=", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyLessThan(Boolean value) {
            addCriterion("is_buy <", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyLessThanOrEqualTo(Boolean value) {
            addCriterion("is_buy <=", value, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyIn(List<Boolean> values) {
            addCriterion("is_buy in", values, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyNotIn(List<Boolean> values) {
            addCriterion("is_buy not in", values, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyBetween(Boolean value1, Boolean value2) {
            addCriterion("is_buy between", value1, value2, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsBuyNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_buy not between", value1, value2, "isBuy");
            return (Criteria) this;
        }

        public Criteria andIsVirtualIsNull() {
            addCriterion("is_virtual is null");
            return (Criteria) this;
        }

        public Criteria andIsVirtualIsNotNull() {
            addCriterion("is_virtual is not null");
            return (Criteria) this;
        }

        public Criteria andIsVirtualEqualTo(Boolean value) {
            addCriterion("is_virtual =", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualNotEqualTo(Boolean value) {
            addCriterion("is_virtual <>", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualGreaterThan(Boolean value) {
            addCriterion("is_virtual >", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_virtual >=", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualLessThan(Boolean value) {
            addCriterion("is_virtual <", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualLessThanOrEqualTo(Boolean value) {
            addCriterion("is_virtual <=", value, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualIn(List<Boolean> values) {
            addCriterion("is_virtual in", values, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualNotIn(List<Boolean> values) {
            addCriterion("is_virtual not in", values, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualBetween(Boolean value1, Boolean value2) {
            addCriterion("is_virtual between", value1, value2, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsVirtualNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_virtual not between", value1, value2, "isVirtual");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceIsNull() {
            addCriterion("is_outsource is null");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceIsNotNull() {
            addCriterion("is_outsource is not null");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceEqualTo(Boolean value) {
            addCriterion("is_outsource =", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceNotEqualTo(Boolean value) {
            addCriterion("is_outsource <>", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceGreaterThan(Boolean value) {
            addCriterion("is_outsource >", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_outsource >=", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceLessThan(Boolean value) {
            addCriterion("is_outsource <", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceLessThanOrEqualTo(Boolean value) {
            addCriterion("is_outsource <=", value, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceIn(List<Boolean> values) {
            addCriterion("is_outsource in", values, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceNotIn(List<Boolean> values) {
            addCriterion("is_outsource not in", values, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceBetween(Boolean value1, Boolean value2) {
            addCriterion("is_outsource between", value1, value2, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andIsOutsourceNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_outsource not between", value1, value2, "isOutsource");
            return (Criteria) this;
        }

        public Criteria andPictureAddrIsNull() {
            addCriterion("picture_addr is null");
            return (Criteria) this;
        }

        public Criteria andPictureAddrIsNotNull() {
            addCriterion("picture_addr is not null");
            return (Criteria) this;
        }

        public Criteria andPictureAddrEqualTo(String value) {
            addCriterion("picture_addr =", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrNotEqualTo(String value) {
            addCriterion("picture_addr <>", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrGreaterThan(String value) {
            addCriterion("picture_addr >", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrGreaterThanOrEqualTo(String value) {
            addCriterion("picture_addr >=", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrLessThan(String value) {
            addCriterion("picture_addr <", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrLessThanOrEqualTo(String value) {
            addCriterion("picture_addr <=", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrLike(String value) {
            addCriterion("picture_addr like", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrNotLike(String value) {
            addCriterion("picture_addr not like", value, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrIn(List<String> values) {
            addCriterion("picture_addr in", values, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrNotIn(List<String> values) {
            addCriterion("picture_addr not in", values, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrBetween(String value1, String value2) {
            addCriterion("picture_addr between", value1, value2, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andPictureAddrNotBetween(String value1, String value2) {
            addCriterion("picture_addr not between", value1, value2, "pictureAddr");
            return (Criteria) this;
        }

        public Criteria andCreatorIdIsNull() {
            addCriterion("creator_id is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIdIsNotNull() {
            addCriterion("creator_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorIdEqualTo(Integer value) {
            addCriterion("creator_id =", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdNotEqualTo(Integer value) {
            addCriterion("creator_id <>", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdGreaterThan(Integer value) {
            addCriterion("creator_id >", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("creator_id >=", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdLessThan(Integer value) {
            addCriterion("creator_id <", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdLessThanOrEqualTo(Integer value) {
            addCriterion("creator_id <=", value, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdIn(List<Integer> values) {
            addCriterion("creator_id in", values, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdNotIn(List<Integer> values) {
            addCriterion("creator_id not in", values, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdBetween(Integer value1, Integer value2) {
            addCriterion("creator_id between", value1, value2, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCreatorIdNotBetween(Integer value1, Integer value2) {
            addCriterion("creator_id not between", value1, value2, "creatorId");
            return (Criteria) this;
        }

        public Criteria andCtimeIsNull() {
            addCriterion("ctime is null");
            return (Criteria) this;
        }

        public Criteria andCtimeIsNotNull() {
            addCriterion("ctime is not null");
            return (Criteria) this;
        }

        public Criteria andCtimeEqualTo(Date value) {
            addCriterion("ctime =", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotEqualTo(Date value) {
            addCriterion("ctime <>", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeGreaterThan(Date value) {
            addCriterion("ctime >", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("ctime >=", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeLessThan(Date value) {
            addCriterion("ctime <", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeLessThanOrEqualTo(Date value) {
            addCriterion("ctime <=", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeIn(List<Date> values) {
            addCriterion("ctime in", values, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotIn(List<Date> values) {
            addCriterion("ctime not in", values, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeBetween(Date value1, Date value2) {
            addCriterion("ctime between", value1, value2, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotBetween(Date value1, Date value2) {
            addCriterion("ctime not between", value1, value2, "ctime");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}